//////////////////////////////////////////////////////////////////////
//  Jack McCaffery
//  11-10-2014
//////////////////////////////////////////////////////////////////////

#include "topicModel/parameterGroup.H"

#include "opencv2/core/core.hpp"

#include <vector>

/// \brief Typedef to distinguish Mats to be used for math from Mats
///	   to be used for images
typedef cv::Mat CvImage;

/// \brief A list of model parameters
template <class SC>
struct ModelParameters
{
	typedef std::vector<ParameterGroup<SC> *> T;
};

namespace topicModel
{

enum dataType
{
	OBSERVED = 0,
	UNOBSERVED = 1,
	PARAMETERS = 2
};

enum parameterType
{
	THETA = 0,
	INIT = 1,
	OMEGA = 2,
	SIGMA = 3
};

enum parametermodelType
{
	TOPICMODEL = 0
};

}
